package com.tujh.android.designpatterns.Adapter;

/**
 * Created by TUJH on 2016/10/26.
 * <p/>
 * 使用对象组合的方式，是动态组合的方式。
 * <p/>
 * 一个适配器可以把多种不同的源适配到同一个目标。换言之，同一个适配器可以把源类和它的子类都适配到目标接口。
 * 因为对象适配器采用的是对象组合的关系，只要对象类型正确，是不是子类都无所谓。
 * <p/>
 * 要重定义Adapter的行为比较困难，这种情况下，需要定义Adapter的子类来实现重定义，然后让适配器组合子类。
 * 虽然重定义Adapter的行为比较困难，但是想要增加一些新的行为则方便的很，而且新增加的行为可同时适用于所有的源。
 * <p/>
 * 需要额外的引用来间接得到Adapter。
 */
public class ObjectAdapter implements Targetable {

    private Source mSource;

    public ObjectAdapter(Source source) {
        this.mSource = source;
    }

    @Override
    public void method1() {
        mSource.method1();
    }

    @Override
    public void method2() {
        System.out.println("this is the targetable method2!");
    }
}
